import { BridgeConfig } from "./index";
import { XChainBridge } from "xrpl/dist/npm/models/common";

export interface BridgeChainProvider<WalletType> {
    createBridgeWallet(): WalletType;
    createLockingChainBridge(
        config: BridgeConfig,
        issuingBridgeAddress: string,
        bridgeWallet: WalletType,
    ): Promise<{ address: string; tokenAddress?: string; config: XChainBridge }>;
    createIssuingChainBridge(
        config: BridgeConfig,
        lockingBridgeAddress: string,
        bridgeWallet: WalletType,
    ): Promise<{ address: string; tokenAddress?: string; config: XChainBridge }>;
}
